/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.eps.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Diana
 */
@Entity
@Table(name = "detalleInventario")
public class DetalleInventario implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetalleInventarioPK detalleInventarioPK;
    @Column(name = "id_zona")
    private String idZona;
    @Column(name = "id_almacen")
    private String idAlmacen;
    @Basic(optional = false)
    @Column(name = "id_subalmacen")
    private int idSubalmacen;
    @Column(name = "id_ambiente")
    private Integer idAmbiente;
    @Column(name = "id_pabellon")
    private Integer idPabellon;
    @Column(name = "id_estante")
    private Integer idEstante;
    @Column(name = "descripcion")
    private String descripcion;
    @Column(name = "unidad")
    private String unidad;
    @Column(name = "precioPromedio")
    private BigDecimal precioPromedio;
    @Column(name = "cantidadActual")
    private BigDecimal cantidadActual;
    @Column(name = "montoActual")
    private BigDecimal montoActual;
    @Column(name = "existenciaFisica")
    private BigDecimal existenciaFisica;
    @Column(name = "montoFisico")
    private BigDecimal montoFisico;
    @Column(name = "cantidadSobrante")
    private BigDecimal cantidadSobrante;
    @Column(name = "montoSobrante")
    private BigDecimal montoSobrante;
    @Column(name = "cantidadFaltante")
    private BigDecimal cantidadFaltante;
    @Column(name = "montoFaltante")
    private BigDecimal montoFaltante;
    @Column(name = "grupo_suministro")
    private String grupoSuministro;
    @Column(name = "ctacontable")
    private String ctacontable;
    @Column(name = "cantidadAjustada")
    private BigDecimal cantidadAjustada;
    @Column(name = "id_movimiento")
    private String idMovimiento;
    @JoinColumn(name = "codInventario", referencedColumnName = "codInventario", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Inventario inventario;
    @Column(name = "fecha_operacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaOperacion;

    public DetalleInventario() {
    }

    public DetalleInventario(DetalleInventarioPK detalleInventarioPK) {
        this.detalleInventarioPK = detalleInventarioPK;
    }

    public DetalleInventario(DetalleInventarioPK detalleInventarioPK, int idSubalmacen) {
        this.detalleInventarioPK = detalleInventarioPK;
        this.idSubalmacen = idSubalmacen;
    }

    public DetalleInventario(String codInventario, String idSuministro, int idCasilla, String idEmpresa) {
        this.detalleInventarioPK = new DetalleInventarioPK(codInventario, idSuministro, idCasilla, idEmpresa);
    }

    public DetalleInventarioPK getDetalleInventarioPK() {
        return detalleInventarioPK;
    }

    public void setDetalleInventarioPK(DetalleInventarioPK detalleInventarioPK) {
        this.detalleInventarioPK = detalleInventarioPK;
    }

    public String getIdZona() {
        return idZona;
    }

    public void setIdZona(String idZona) {
        this.idZona = idZona;
    }

    public String getIdAlmacen() {
        return idAlmacen;
    }

    public void setIdAlmacen(String idAlmacen) {
        this.idAlmacen = idAlmacen;
    }

    public int getIdSubalmacen() {
        return idSubalmacen;
    }

    public void setIdSubalmacen(int idSubalmacen) {
        this.idSubalmacen = idSubalmacen;
    }

    public Integer getIdAmbiente() {
        return idAmbiente;
    }

    public void setIdAmbiente(Integer idAmbiente) {
        this.idAmbiente = idAmbiente;
    }

    public Integer getIdPabellon() {
        return idPabellon;
    }

    public void setIdPabellon(Integer idPabellon) {
        this.idPabellon = idPabellon;
    }

    public Integer getIdEstante() {
        return idEstante;
    }

    public void setIdEstante(Integer idEstante) {
        this.idEstante = idEstante;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getUnidad() {
        return unidad;
    }

    public void setUnidad(String unidad) {
        this.unidad = unidad;
    }

    public BigDecimal getPrecioPromedio() {
        return precioPromedio;
    }

    public void setPrecioPromedio(BigDecimal precioPromedio) {
        this.precioPromedio = precioPromedio;
    }

    public BigDecimal getCantidadActual() {
        return cantidadActual;
    }

    public void setCantidadActual(BigDecimal cantidadActual) {
        this.cantidadActual = cantidadActual;
    }

    public BigDecimal getMontoActual() {
        return montoActual;
    }

    public void setMontoActual(BigDecimal montoActual) {
        this.montoActual = montoActual;
    }

    public BigDecimal getExistenciaFisica() {
        return existenciaFisica;
    }

    public void setExistenciaFisica(BigDecimal existenciaFisica) {
        this.existenciaFisica = existenciaFisica;
    }

    public BigDecimal getMontoFisico() {
        return montoFisico;
    }

    public void setMontoFisico(BigDecimal montoFisico) {
        this.montoFisico = montoFisico;
    }

    public BigDecimal getCantidadSobrante() {
        return cantidadSobrante;
    }

    public void setCantidadSobrante(BigDecimal cantidadSobrante) {
        this.cantidadSobrante = cantidadSobrante;
    }

    public BigDecimal getMontoSobrante() {
        return montoSobrante;
    }

    public void setMontoSobrante(BigDecimal montoSobrante) {
        this.montoSobrante = montoSobrante;
    }

    public BigDecimal getCantidadFaltante() {
        return cantidadFaltante;
    }

    public void setCantidadFaltante(BigDecimal cantidadFaltante) {
        this.cantidadFaltante = cantidadFaltante;
    }

    public BigDecimal getMontoFaltante() {
        return montoFaltante;
    }

    public void setMontoFaltante(BigDecimal montoFaltante) {
        this.montoFaltante = montoFaltante;
    }

    public String getGrupoSuministro() {
        return grupoSuministro;
    }

    public void setGrupoSuministro(String grupoSuministro) {
        this.grupoSuministro = grupoSuministro;
    }

    public String getCtacontable() {
        return ctacontable;
    }

    public void setCtacontable(String ctacontable) {
        this.ctacontable = ctacontable;
    }

    public BigDecimal getCantidadAjustada() {
        return cantidadAjustada;
    }

    public void setCantidadAjustada(BigDecimal cantidadAjustada) {
        this.cantidadAjustada = cantidadAjustada;
    }

    public String getIdMovimiento() {
        return idMovimiento;
    }

    public void setIdMovimiento(String idMovimiento) {
        this.idMovimiento = idMovimiento;
    }

    public Inventario getInventario() {
        return inventario;
    }

    public void setInventario(Inventario inventario) {
        this.inventario = inventario;
    }

    public Date getFechaOperacion() {
        return fechaOperacion;
    }

    public void setFechaOperacion(Date fechaOperacion) {
        this.fechaOperacion = fechaOperacion;
    }


    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detalleInventarioPK != null ? detalleInventarioPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof DetalleInventario)) {
            return false;
        }
        DetalleInventario other = (DetalleInventario) object;
        if ((this.detalleInventarioPK == null && other.detalleInventarioPK != null) || (this.detalleInventarioPK != null && !this.detalleInventarioPK.equals(other.detalleInventarioPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.DetalleInventario[detalleInventarioPK=" + detalleInventarioPK + "]";
    }

}
